/*
 * $Id$
 * 
 * This software is provided 'as-is', without any express or implied
 * warranty. In no event will the authors be held liable for any damages
 * arising from the use of this software.
 * 
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 * 
 *  1. The origin of this software must not be misrepresented; you must not
 *     claim that you wrote the original software. If you use this software
 *     in a product, an acknowledgment in the product documentation would be
 *     appreciated but is not required.
 * 
 *  2. Altered source versions must be plainly marked as such, and must not be
 *     misrepresented as being the original software.
 * 
 *  3. This notice may not be removed or altered from any source
 *     distribution.
 */
package oms3.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/** Range Information for fields
 *
 * @author Olaf David 
 * @version $Id$ 
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Range {

    /**
     * The minimum value
     * @return the minimal value
     */
    double min() default Double.MIN_VALUE;

    /**
     * The maximum value
     * @return the maximum value
     */
    double max() default Double.MAX_VALUE;


    /**
     * Exclude the minimum value
     *
     * @return true if the minimum should be excluded
     */
    boolean excl_min() default false;

    /**
     * Exclude the maximum value
     *
     * @return true if the minimum should be excluded
     */
    boolean excl_max() default false;
}
